# 代码文件可能出现以下的问题：
# 比如文件因为数据类型，导致不能正常运转。
# 或者用户输入的数据类型和我们的数据类型并不匹配，导致程序崩溃

"""
常见异常类型
filenotfounderror
typeerror
....许许多多
"""

# 对于日常代码可以使用 try except else finally 来进行捕抓
try:
    uw = float(input("输入体重"))
    uh = float(input("输入身高"))
    u_bmi = uw / uh ** 2
# 这里捕抓异常，按时先后顺序，如果前面捕抓到了，后面的except不再执行。
except ValueError:
    print("输入非数字，重新运行")
except ZeroDivisionError:
    print("身高不能为0，重新运行")
except :
    print("未知错误，请重新运行")
# 如果都没有异常，那么就会执行else
else:
    print(f"BMI{u_bmi:.2f}")
# 无论是否有异常，最后都会执行finally
finally:
    print("结束")